/**
 * Created by Baggio on 2018-9-13.
 */
$(function () {

    $(".button_01").click(function () {
        var orderId = $(".order_number_01").html();
        toPay(orderId);
    });
});

function toPay(orderId) {

    var payPrice = $("#realPrice").val();
    var paymentJSON = [{orderId: orderId, price: payPrice, payType: 1, payMode: 6, status: 1}];
    var postData = {orderId: orderId, paymentJSON: JSON.stringify(paymentJSON)};


    var load = new Loading();
    load.init();


    $.ajax({
        url: "/pay/toPay.html",
        type: "post",
        dataType: "json",
        data: postData,
        beforeSend: function () {

            load.start();
        },//执行ajax前执行loading函数.直到success 
        success: function (res) {
            if (res.code != 1) {
                alert(res.msg);
                load.stop();
                return;
            }
            var wxPayData = res.data;
            weChatPayinit(wxPayData.map);

        },
        complete: function () {
            load.stop();
        }
    });
}

function weChatPayinit(wxPayData) {


    wx.config({
        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
        appId: wxPayData.appId, // 必填，公众号的唯一标识
        timestamp: wxPayData.wxConfigTimeStamp, // 必填，生成签名的时间戳
        nonceStr: wxPayData.wxConfigNonceStr, // 必填，生成签名的随机串
        signature: wxPayData.Signature,// 必填，签名，见附录1
        jsApiList: ['chooseWXPay'],
        success: function (res) {
            // 支付成功后的回调函数c
            //    alert(" wx.config succJSON====>" + JSON.stringify(res));
        },
        fail: function (msg) {
            // alert(" wx.config fail-=>" + JSON.stringify(msg));
        }
        // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
    });
    wx.ready(function () {
        // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
        callpay(wxPayData);
    });
    wx.error(function (res) {
        // config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
        //alert(" wx.config erro==>" + JSON.stringify(res));
    });

}

function callpay(wxPayData) {
    //alert("callpay=====>>>>>>>");
    wx.chooseWXPay({
        "appId": wxPayData.appId,//appid
        "timestamp": wxPayData.wxJsApiParamTimeStamp, //时间戳，自1970年以来的秒数
        "nonceStr": wxPayData.wxJsApiParamNonceStr, //随机串
        "package": wxPayData.PackAge,
        "signType": "MD5", //微信签名方式：
        "paySign": wxPayData.PaySign, //微信签名

        success: function (res) {
            // 支付成功后的回调函数c
            //alert(JSON.stringify(msg));
            var orderId = $(".order_number_01").html();
            // alert("支付成功！");
            var url = "https://www.showcai.com/pay/payResult.html?orderId=" + orderId;
            location.href = url;
        },
        fail: function (msg) {
            alert("支付失败！");
            //  alert("callpay "+JSON.stringify(msg));
        }
    });
}